home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #324 (1994-04)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #324 (1994-04)(Rhein-Sieg-Soft).adf
/
VideoText3.5
/
source
/
SAA5246.doc
< prev
next >
Wrap
Text File
|
1994-04-01
|
9KB
|
196 lines
Anmerkungen zur Programmierung des SAA 5246
-------------------------------------------
Der SAA 5246 ist registerkompatibel mit seinem Vorgängermodell SAA 5243,
abgesehen von den neu hinzugekommenen Registern R11B (Statusregister) und
R0 (u. a. Umschaltung R11/R11B).
***R1
Bit 2 (TCS on) sorgt für Synchronisation des RGB-Ausgangssignals mit der
Videoquelle, sollte für Fernsehdarstellung also immer gesetzt sein.
Anscheinend wird es aber beim Einschalt-Reset gelöscht!
***R2:
Bit 4 und 5 wählen eine der vier möglichen Empfangseinheiten aus, Bit 6
bestimmt, ob die angeforderte Seite in die obere oder untere Speicherbank
abgelegt wird.
Trifft eine Seite ein, nach der mehr als eine Empfangseinheit sucht, so
wird die Einheit mit der niedrigsten Nummer diese Seite einlesen, die
anderen Einheiten ignorieren sie.
***R3:
Das _HOLD-Bit ist die angemessene Methode, die Seitensuche einer einzelnen
Empfangseinheit zu stoppen, z. B. um in Ruhe ihren Seitenspeicher über den
I²C-Bus auslesen zu können. Die Wirkung tritt unmittelbar nach Beschreiben
von R3 mit _HOLD=0 ein, d. h. nicht einmal evtl. ausstehende Folgezeilen
einer kurz zuvor empfangenen Kopfzeile werden mehr eingelesen. Der restliche
Inhalt der R3-Unterregister ist dabei völlig egal, solange bis eine neue
Seitenbeschreibung mit _HOLD=1 vorgenommen wird.
Der Vorteil gegenüber der Holzhammermethode "ACQ OFF" liegt darin, daß die
übrigen Empfangseinheiten nicht behindert werden, und daß die Uhrzeitanzeige
am Fernseher weiterläuft. Der Nachteil ist, daß zum Wiedereinschalten die
Seitensuche neu programmiert werden muß, ärgerlich, wenn man eigentlich
gar nichts verändern, sondern nur weitere Unterseiten sehen will.
***R4:
Die zur Anzeige am Fernseher ausgewählte Seite ist auch die einzige, in der
laufend die Uhrzeit aktualisiert wird!
***R5/R6:
R5 wird auf gewöhnliche Seiten angewandt, R6 auf Schlagzeilen und Untertitel,
wenn sie durch die entsprechenden Steuerbits (C5 bzw. C6) gekennzeichnet
sind. Sinn: Schlagzeilen/Untertitel sollen für gewöhnlich mit dem Fernsehbild
kombiniert werden (und enthalten zu diesem Zweck Boxen: von doppeltem
chr(11) und chr(10) umschlossene Bereiche), normale Seiten nicht.
nochmal kurz die Bedutung der Bits:
Bit 0: Fernsehbild dient als Boxhintergrund
Bit 1: Fernsehbild dient der restlichen Seite als Hintergrund
Bit 2: Boxtext ein
Bit 3: restlicher Seitentext ein
Bit 4: ( Kontrastreduzierung )
Bit 5: ( = Unfug )
Bit 6: Box ist undurchsichtig
Bit 7: restliche Seite ist undurchsichtig
Besonderheiten:
- Wenn eine Box undurchsichtig ist (Bit 6), ist es egal, ob das Fernsehbild
hinter ihr sichtbar ist (Bit 0).
Wenn dagegen eine ganze Seite undurchsichtig ist (Bit 7), bestimmt Bit 1,
ob der Rahmen schwarz ist, oder ob ringsum noch etwas Fernsehbild
sichtbar bleibt.
- Es ist nicht sinnvoll, hinter einem durchsichtigen Bereich das Fernsehbild
auszuschalten: Durchsichtig bewirkt in diesem Fall, daß alle Hintergrund-
farben schwarz erscheinen, sieht bei Grafikseiten ziemlich ätzend aus.
- Es ist grober Unfug, hinter einem ausgeschaltetem Textbereich das
Fernsehbild auszuschalten: Es entstehen einfach schwarze Flächen.
Einige sinnvolle Bitkombinationen:
Textdarstellung | R5 | R6
-----------------+-------------+-------------
Vollbild | %11001100 | %11001100
nur Kernfläche | %11001111 | %01001111
durchsichtig | %00001111 | %00001111
aus | %00000011 | %00000011
Wobei R5=Vollbild/R6=Kernfläche und R5=Vollbild/R6=Vollbild die üblichsten
Anwendungen sein dürften
***R8:
Der Löschvorgang, der bei Anwählen einer Seite ausgelöst werden kann, dauert
laut Datenblatt bis zu 22 ms.
***R11:
Für die Programmierung sind insbesondere die Statusdaten in Zeile 25, Byte
0 bis 9 interessant, Lage der Bits s. Datenblatt. Die Steuerbits werden
der Kopfzeile entnommen und sind darum sofort nach Ankündigung der neuen
Seite (durch Löschen von PBLF und _FOUND) aktuell, ebenso wie die Seiten-
und Unterseitennummer.
_FOUND: kann durch einen externen Schreibzugriff gesetzt werden, nützlich.
PBLF: wird bei der Programmierung der Seitenanforderung (R2/R3) gesetzt,
ebenso bei Aktivierung der Empfangseinheit (durch ACQ ON). Kann
wie _FOUND auch "von Hand" gesetzt werden, und ist dazu evtl. sogar
geeigneter, da es in einem eigenen Byte steht.
C4/C8: Nach Eintreffen der Kopfzeile einer gesuchten Seite löscht der
Decoder zunächst den zugehörigen Seitenspeicher (22 ms, s. o.),
und kann darum nicht sofort, sondern erst im nächsten Halbbild,
mit dem Empfang von Folgezeilen beginnen.
Ein verfeinertes Verfahren benutzt die Steuerbits und sendet die
Kopfzeile zweimal: einmal mit C4 (Löschen) gesetzt ("Vorkopfzeile"),
und im darauffolgenden Halbbild mit C8 (Texterneuerung) gesetzt.
Durch C8 weiß der Decoder, daß er den Seitenspeicher bereits gelöscht
hat, und kann sofort mit dem Empfang von Folgezeilen beginnen.
Ein Problem besteht nun darin, daß das geniale Verfahren zur
Erkennung vollständigen Seitenempfangs (s. u.), wenn es schnell
genug ist, die C4-Kopfzeile für den Empfangsbeginn und die
C8-Kopfzeile für den Beginn der nächsten Seite (=Empfangsende)
halten kann. Hmmm. Tritt das wirklich auf? Evtl. Lösung: wenn
bei PBLF=0 auch C4=1 gelesen wurde, PBLF erneut setzen. Sollte
vor Eintreffen der C8-Zeile zu schaffen sein ...
Ich habe mal geschaut, wie die beiden Steuerbits in der Praxis
auftreten. ARD/ZDF verwendet sie nur zusammen, West3 auch schon
mal C4 alleine (bei den Testseiten 195 und 199). Die Bits stehen
nur in Seiten, deren Text erneuert werden muß, z. B. in
Mehrfachseiten, oder einfach bei aktuellen Änderungen des
Seiteninhalts. Das eine Kopfzeile zweimal hintereinander gesendet
wird, habe ich allerdings nie festgestellt.
C5 ("Schlagzeile"): Für Seiten, die dafür gedacht sind, ins laufende
Fernsehbild eingeblendet zu werden, wie 111, 222 und 333.
C6 ("Untertitel"): Ähnlich C6, aber Untertitel (wie S. 150) sind doch etwas
anders als Schlagzeilen, da sich ihr Inhalt *sehr* oft ändert.
C7 ("Kopfzeile unterdrücken"): Macht Sinn bei Schlagzeilen und Untertiteln,
wo Uhr und Seitenkontrolle nicht dauernd gebraucht werden und eher
stören. Wird von ARD/ZDF aber nicht verwendet.
C9 ("Unterbrochene Sequenz"): Normalerweise werden alle Seiten zyklisch in
Reihenfolge aufsteigender Seitennummer gesendet, von Seite 100 bis
Seite 899. Ausnahmen von dieser Regel werden freundlicherweise durch
dieses Bit gekennzeichnet und dienen normalerweise dem Zweck, eine
wichtige Seitennummer mehrmals (ca. 3-6mal) im Seitenzyklus
unterzubringen. Beispiele sind Untertitel, Schlagzeilen,
Inhaltsübersichten oder der Flugplan des Düsseldorfer Flughafens
auf West3-Text.
Der Decoder benutzt dieses Bit, damit am Fernseher die oben links
durchlaufenden Nummern nicht ganz so verwirrend wirken: nur die
Seiten aus aufsteigender Sequenz (C9=0) werden hier angezeigt.
C10 ("Unterdrückung der Darstellung"): Für Seiten, deren Darstellung dem
Benutzer nicht viel bringen würde (falls er überhaupt mal auf sie
stoßen sollte), z. B. die Steuerseiten 879 und 880 im West3-Text.
Leider werden nicht alle Seiten mit Binärdaten auf diese Weise
geschützt, z. B. nicht die Seite 689 (codierte Verkehrshinweise).
ARD/ZDF verwenden das Bit C10 anscheinend gar nicht.
C11 ("Serielle Magazinfolge"): Wenn C11 gesetzt ist, folgen auf eine
Kopfzeile nur ihre eigenen Unterzeilen, dann kommt die nächste
Kopfzeile, usw. Bei C11=0 können dagegen Zeilen von bis zu 8 Seiten
durcheinander ankommen. Das ist möglich, da jede Zeile eine Zeilen-
und eine Magazinnummer enthält. Bedeutsam für das geniale Verfahren
zur Erkennung vollständigen Seitenempfangs (s. u.).
C11=1 ist das üblichere Verfahren.
Aus der CT 10/92 stammt ein geniales Verfahren, um das Ende einer
Seitenübertragung zu erkennen. Die Bits PBLF und _FOUND werden ja bereits
bei Eintreffen der Kopfzeile gelöscht, und weitere Meldungsbits existieren
nicht. Idee ist, eine zusätzliche Empfangseinheit zu verwenden, um das
Eintreffen der nächsten Kopfzeile abzuwarten.
Dazu wird nach Empfang der erwünschten Kopfzeile (PBLF=0) ein niederprioriger
Empfangskreis auf eine beliebige Seite programmiert (alle DOCARE-Bits Null),
bzw. bei C11=0 auf eine beliebige Seite desselben Magazins. Sobald seine
Kopfzeile eingetroffen ist (PBLF=0), ist die erwünschte Seite komplett.
Kleiner Nachteil des Verfahrens: Nur noch Empfangseinheiten 0, 1 und 2
stehen für die Seitensuche zur Verfügung, Einheit 3 muß für das Warten auf
"irgendeine Kopfzeile" freigehalten werden.